﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class ThongKe_PhuLuc2e : System.Web.UI.Page
{
    _dbDataContext _db = new _dbDataContext();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            txtdenngay.Text = string.Format("{0:dd/MM/yyyy}", DateTime.Now);
        }
    }
    protected List<tblDaoTao> GetListDsDaoTao()
    {
        var list = _db.tblDaoTaos.Where(r => r.ThoiGianDaoTaoTu >= CatalogAccess.ConvertToDate(txttungay.Text) && r.ThoiGianDaoTaoDen <= CatalogAccess.ConvertToDate(txtdenngay.Text));
        return list.ToList();
    }
    protected List<tblDangKyLopHoc> GetListDsDangKy()
    {
        return _db.tblDangKyLopHocs.ToList();
    }
    protected void btnthongke_biendong_Click(object sender, EventArgs e)
    {
        if (txttungay.Text.Length == 0)
        {
            lbl_message.Text = "Chọn giá trị từ ngày trước khi thống kê.";
            return;
        }
        var list = GetListDsDaoTao();
        var listdanhsachdangky = GetListDsDangKy();
        int tungay = CatalogAccess.DoiNgaySangSoTinhTu1930(CatalogAccess.ConvertToDate(txttungay.Text));
        int denngay = CatalogAccess.DoiNgaySangSoTinhTu1930(CatalogAccess.ConvertToDate(txtdenngay.Text));
        if (tungay > denngay)
        {
            lbl_message.Text = "Thời gian từ ngày phải nhỏ hơn đến ngày";
            return;
        }
        if (list.Count() == 0)
        {
            lbl_message.Text = "Không có chương trình đào tạo trong khoản thời gian này!.";
            return;
        }
        string st = "";
        st += "<td>1</td>";
        for (int i = 1; i <= 3; i++)
        {
            //tính lới 1
            var listlop1 = list.Where(r => r.TenLopID == i);
            st += "<td></td>";
            //Tính cấp tỉnh
            //Tổng số lớp
            st += "<td>" + listlop1.Where(r => r.DonViToChuc.Substring(0, 3) == "TDB").Count().ToString() + "</td>";
            //Tinh so can bo tham gia
            st += "<td>" + (from r in listlop1 where r.DonViToChuc.Substring(0, 3) == "TDB" join c in listdanhsachdangky on r.ID equals c.MaLopID select r).Count().ToString() + "</td>";
            //Tính cấp huyen
            //Tổng số lớp
            st += "<td>" + listlop1.Where(r => r.DonViToChuc.Substring(0, 3) == "CSD").Count().ToString() + "</td>";
            //Tinh so can bo tham gia
            st += "<td>" + (from r in listlop1 where r.DonViToChuc.Substring(0, 3) == "CSD" join c in listdanhsachdangky on r.ID equals c.MaLopID select r).Count().ToString() + "</td>";
            //Tính cấp xa
            //Tổng số lớp
            st += "<td>" + listlop1.Where(r => r.DonViToChuc.Substring(0, 3) == "DCS" || r.DonViToChuc.Substring(0, 3) == "CDC").Count().ToString() + "</td>";
            //Tinh so can bo tham gia
            st += "<td>" + (from r in listlop1 where r.DonViToChuc.Substring(0, 3) == "CSD" || r.DonViToChuc.Substring(0, 3) == "CDC" join c in listdanhsachdangky on r.ID equals c.MaLopID select r).Count().ToString() + "</td>";
        }
        //thong ke can bo doan duoc dao tao ly luan chinh tri.
        var listdscanbodoan = from p in _db.tblDoanViens join c in _db.tblCongTacDoans on p.MaDonVien equals c.MaDoanVien select p;
        st+="<td>"+ listdscanbodoan.Where(r=>r.tblQuanHeXaHoi.LyLuanChinhTriID==76 || r.tblQuanHeXaHoi.LyLuanChinhTriID==108).Count().ToString() +"</td>";//cu nhan va cao cap
        st += "<td>" + listdscanbodoan.Where(r => r.tblQuanHeXaHoi.LyLuanChinhTriID == 21).Count().ToString() + "</td>";//trung cap
        lblsummary.Text = st;
        Session["PhuLuc2ePrint"] = st;
        pndetail.Visible = true;
        pnprint.Visible = false;
    }
    protected void txttungay_TextChanged(object sender, EventArgs e)
    {
        lbl_message.Text = "";
    }
    protected void btn_xuat_file_excel_Click(object sender, EventArgs e)
    {
        Response.Redirect("javascript:window.open('../Print/Print2e.aspx','_blank');");
    }
    protected void LinkButtonLop1_Click(object sender, EventArgs e)
    {
        DisplayDetail(1, "TDB");
    }

    private void DisplayDetail(int id, string cap)
    {
        var lists = GetListDsDaoTao();
        var listlop1 = lists.Where(r => r.TenLopID == id);
        var ListDsDangKy = GetListDsDangKy();
        var list = from r in listlop1 where r.DonViToChuc.Substring(0, 3) == cap join c in ListDsDangKy on r.ID equals c.MaLopID select c;
        if (list.Count() == 0)
        {
            pnprint.Visible = false;
            return;
        }
        pnprint.Visible = true;
        string Today_date = string.Format("{0:dd/MM/yyyy}", DateTime.Now);
        string str = "<tr><td style='text-align: right;' colspan='8'>"
                                                    + "<em>Ngày lập báo cáo:" + Today_date + "</em>"
                                                    + "&nbsp;"

                                                       + " <em>"
                                                           + " <br />"
                                                           + " Đơn vị thống kê:Không rõ </em>"
                                                    + "&nbsp;"

                                                + "</td>"
                                            + "</tr>"

                                            + "<tr>"
                                                + "<td>STT</td>"
                                                + "<td>Mã Đoàn viên</td>"
                                                + "<td>Tên đoàn viên</td>"
                                                + "<td>Ngày sinh</td>"
                                                + "<td>Trực thuộc</td>"
                                                + "<td>Đơn vị công tác</td>"
                                                + "<td>Chức vụ</td>"
                                                + "<td>Lý luận chính trị</td>"
                                            + "</tr>";
        int dem = 1;
        _dbDataContext _db=new _dbDataContext();
        var listdanhmuc = _db.tblDanhMucs.Where(r => r.Loai == 7);
        foreach (var item in list)
        {
            str += "<tr>"
                    + "<td>" + dem++ + "</td>"
                    + "<td>" + item.MaDoanVien + "</td>"
                    + "<td style='text-align: justify;'>" + item.tblDoanVien.HoTen + "</td>   "
                    + "<td>" + string.Format("{0:dd/MM/yyyy}", item.tblDoanVien.NgaySinh) + "</td>"
                    + "<td>" + item.tblCoSoDoan.TenDonVi.Trim() + "</td> "
                    + "<td>" + item.tblCoSoDoan1.TenDonVi + "</td>"
                    + "<td>" + item.tblDanhMuc.TenDanhMuc.Trim() + "</td>"
                    + "<td>" + (_db.tblQuanHeXaHois.Where(r => r.MaDoanVien == item.MaDoanVien).Count()==0?"":listdanhmuc.Single(r=>r.ID==item.tblDoanVien.tblQuanHeXaHoi.LyLuanChinhTriID).TenDanhMuc) + "</td>    "
                    + "</tr>";
        }
        label_table.Text = str;
    }
    private void DisplayDetailCapXa(int id)
    {
        var ListDsDangKy = GetListDsDangKy();
        var lists = GetListDsDaoTao();
        var listlop1 = lists.Where(r => r.TenLopID == id);
        var list = from r in listlop1 where r.DonViToChuc.Substring(0, 3) == "DCS" || r.DonViToChuc.Substring(0,3)=="CDC" join c in ListDsDangKy on r.ID equals c.MaLopID select c;
        if (list.Count() == 0)
        {
            pnprint.Visible = false;
            return;
        }
        pnprint.Visible = true;
        string Today_date = string.Format("{0:dd/MM/yyyy}", DateTime.Now);
        string str = "<tr><td style='text-align: right;' colspan='8'>"
                                                    + "<em>Ngày lập báo cáo:" + Today_date + "</em>"
                                                    + "&nbsp;"

                                                       + " <em>"
                                                           + " <br />"
                                                           + " Đơn vị thống kê:Không rõ </em>"
                                                    + "&nbsp;"

                                                + "</td>"
                                            + "</tr>"

                                            + "<tr>"
                                                + "<td>STT</td>"
                                                + "<td>Mã Đoàn viên</td>"
                                                + "<td>Tên đoàn viên</td>"
                                                + "<td>Ngày sinh</td>"
                                                + "<td>Trực thuộc</td>"
                                                + "<td>Đơn vị công tác</td>"
                                                + "<td>Chức vụ</td>"
                                                + "<td>Lý luận chính trị</td>"
                                            + "</tr>";
        int dem = 1;
        _dbDataContext _db = new _dbDataContext();
        var listdanhmuc = _db.tblDanhMucs.Where(r => r.Loai == 7);
        foreach (var item in list)
        {
            str += "<tr>"
                    + "<td>" + dem++ + "</td>"
                    + "<td>" + item.MaDoanVien + "</td>"
                    + "<td style='text-align: justify;'>" + item.tblDoanVien.HoTen + "</td>   "
                    + "<td>" + string.Format("{0:dd/MM/yyyy}", item.tblDoanVien.NgaySinh) + "</td>"
                    + "<td>" + item.tblCoSoDoan.TenDonVi + "</td> "
                    + "<td>" + item.tblCoSoDoan1.TenDonVi + "</td>     "
                    + "<td>" + item.tblDanhMuc.TenDanhMuc.Trim() + "</td>    "
                    + "<td>" + (_db.tblQuanHeXaHois.Where(r => r.MaDoanVien == item.MaDoanVien).Count() == 0 ? "" : listdanhmuc.Single(r => r.ID == item.tblDoanVien.tblQuanHeXaHoi.LyLuanChinhTriID).TenDanhMuc) + "</td>    "
                    + "</tr>";
        }
        label_table.Text = str;
    }
    protected void btn_close_view_Click(object sender, EventArgs e)
    {
        pnprint.Visible = false;
    }
    protected void LinkCaphuyenLop1_Click(object sender, EventArgs e)
    {
        DisplayDetail(1, "CSD");
    }
    protected void LinkCapxaLop1_Click(object sender, EventArgs e)
    {
        DisplayDetailCapXa(1);
    }
    protected void LinkCapTinhLop2_Click(object sender, EventArgs e)
    {
        DisplayDetail(2, "TDB");
    }
    protected void LinkCapHuyenLop2_Click(object sender, EventArgs e)
    {
        DisplayDetail(2, "CSD");
    }
    protected void LinkCapXaLop2_Click(object sender, EventArgs e)
    {
        DisplayDetailCapXa(2);
    }
    protected void LinkCapTinhLop3_Click(object sender, EventArgs e)
    {
        DisplayDetail(3, "TDB");
    }
    protected void LinkCapHuyenLop3_Click(object sender, EventArgs e)
    {
        DisplayDetail(3, "CSD");
    }
    protected void LinkCapHuyenLop3_Click1(object sender, EventArgs e)
    {
        DisplayDetailCapXa(3);
    }
    protected void linkcunhan_Click(object sender, EventArgs e)
    {
        _dbDataContext _db = new _dbDataContext();
        //var listdscanbodoan = from p in _db.tblDoanViens join c in _db.tblCongTacDoans on p.MaDonVien equals c.MaDoanVien select p;
        var listdscanbodoan = from p in _db.tblCongTacDoans select p;
        var list = listdscanbodoan.Where(r => r.tblDoanVien.tblQuanHeXaHoi.LyLuanChinhTriID == 76 || r.tblDoanVien.tblQuanHeXaHoi.LyLuanChinhTriID == 108);
        if (list.Count() != 0)
        {
            pnprint.Visible = true;
            string Today_date = string.Format("{0:dd/MM/yyyy}", DateTime.Now);
            string str = "<tr><td style='text-align: right;' colspan='8'>"
                                                        + "<em>Ngày lập báo cáo:" + Today_date + "</em>"
                                                        + "&nbsp;"

                                                           + " <em>"
                                                               + " <br />"
                                                               + " Đơn vị thống kê:Không rõ </em>"
                                                        + "&nbsp;"

                                                    + "</td>"
                                                + "</tr>"

                                                + "<tr>"
                                                    + "<td>STT</td>"
                                                    + "<td>Mã Đoàn viên</td>"
                                                    + "<td>Tên đoàn viên</td>"
                                                    + "<td>Ngày sinh</td>"
                                                    + "<td>Trực thuộc</td>"
                                                    + "<td>Đơn vị công tác</td>"
                                                    + "<td>Chức vụ</td>"
                                                    + "<td>Lý luận chính trị</td>"
                                                + "</tr>";
            int dem = 1;
            foreach (var item in list)
            {
                str += "<tr>"
                        + "<td>" + dem++ + "</td>"
                        + "<td>" + item.MaDoanVien.Trim() + "</td>"
                        + "<td style='text-align: justify;'>" + item.tblDoanVien.HoTen + "</td>   "
                        + "<td>" + string.Format("{0:dd/MM/yyyy}", item.tblDoanVien.NgaySinh) + "</td>"
                        + "<td>" + item.tblDoanVien.tblCoSoDoan.TenDonVi + "</td> "
                        + "<td>" + item.tblCoSoDoan.TenDonVi.Trim() + "</td>     "
                        + "<td>" + item.tblDanhMuc2.TenDanhMuc.Trim() + "</td>    "
                        + "<td>" + item.tblDoanVien.tblQuanHeXaHoi.tblDanhMuc4.TenDanhMuc + "</td>    "
                        + "</tr>";
            }
            label_table.Text = str;
        }  
    }
    protected void Linktrungcap_Click(object sender, EventArgs e)
    {
        _dbDataContext _db = new _dbDataContext();
        //var listdscanbodoan = from p in _db.tblDoanViens join c in _db.tblCongTacDoans on p.MaDonVien equals c.MaDoanVien select p;
        var listdscanbodoan = from p in _db.tblCongTacDoans select p;
        var list = listdscanbodoan.Where(r => r.tblDoanVien.tblQuanHeXaHoi.LyLuanChinhTriID == 21);
        if (list.Count() != 0)
        {
            pnprint.Visible = true;
            string Today_date = string.Format("{0:dd/MM/yyyy}", DateTime.Now);
            string str = "<tr><td style='text-align: right;' colspan='8'>"
                                                        + "<em>Ngày lập báo cáo:" + Today_date + "</em>"
                                                        + "&nbsp;"

                                                           + " <em>"
                                                               + " <br />"
                                                               + " Đơn vị thống kê:Không rõ </em>"
                                                        + "&nbsp;"

                                                    + "</td>"
                                                + "</tr>"

                                                + "<tr>"
                                                    + "<td>STT</td>"
                                                    + "<td>Mã Đoàn viên</td>"
                                                    + "<td>Tên đoàn viên</td>"
                                                    + "<td>Ngày sinh</td>"
                                                    + "<td>Trực thuộc</td>"
                                                    + "<td>Đơn vị công tác</td>"
                                                    + "<td>Chức vụ</td>"
                                                    + "<td>Lý luận chính trị</td>"
                                                + "</tr>";
            int dem = 1;
            foreach (var item in list)
            {
                str += "<tr>"
                        + "<td>" + dem++ + "</td>"
                        + "<td>" + item.MaDoanVien.Trim() + "</td>"
                        + "<td style='text-align: justify;'>" + item.tblDoanVien.HoTen + "</td>   "
                        + "<td>" + string.Format("{0:dd/MM/yyyy}", item.tblDoanVien.NgaySinh) + "</td>"
                        + "<td>" + item.tblDoanVien.tblCoSoDoan.TenDonVi + "</td> "
                        + "<td>" + item.tblCoSoDoan.TenDonVi.Trim() + "</td>     "
                        + "<td>" + item.tblDanhMuc2.TenDanhMuc.Trim() + "</td>    "
                        + "<td>" + item.tblDoanVien.tblQuanHeXaHoi.tblDanhMuc4.TenDanhMuc + "</td>    "
                        + "</tr>";
            }
            label_table.Text = str;
        }
        else
        {
            label_table.Text = "";
        }
    }
}